// // 抽象的女朋友 类
// interface GF {
//     Pet(): void;
// }
// class Tander implements GF {
//     Pet(): void {
//         console.log('我有一个温柔的女朋友');

//     }
// }
// class Lovely implements GF {
//     Pet(): void {
//         console.log('我有一个可爱的女朋友');

//     }
// }
// class Irascible implements GF {
//     Pet(): void {
//         console.log('医院的wifi好');

//     }
// }

// class AllGirl {
//     static Choice(type: String) {
//         switch (type) {
//             case "温柔":
//                 return new Tander()
//                 break;
//             case "可爱":
//                 return new Lovely()
//                 break; 
//             case "医院":
//                 return new Irascible()
//                 break;
//             default:
//                 break;
//         }
//     }
//  }


//  let girl = AllGirl.Choice("可爱")
//  girl.Pet()

// 电器工厂 
//  海尔工厂 海尔TV 海尔空调
//  海信工厂 海信TV 海信空调
// TV
// 空调

// 电器工厂
interface AllFactory {
    creatTV(): void;
    creatAir(): void;
}
// 海尔工厂
class HR implements AllFactory {
    creatTV(): any {
        return new haierTV()
    }
    creatAir(): any {
        return new haierAir()
    }
}
// 海信工厂
class HX implements AllFactory {
    creatTV(): any {
        return new haixinTV()
    }
    creatAir(): any {
        return new haixinAir()
    }
}
// 电视
interface TV {
    play(): void;
}
// 空调
interface Air {
    change(): void;
}
// 海尔tv
class haierTV implements TV {
    play(): void {
        console.log("海尔TV正在播放")
    }
}
// 海信tv
class haixinTV implements TV {
    play(): void {
        console.log("海信TV正在播放")
    }
}
// 海尔空调
class haierAir implements Air {
    change(): void {
        console.log("海尔空调正在降温")
    }
}
// 海信空调
class haixinAir implements Air {
    change(): void {
        console.log("海信空调正在降温")
    }
}
let hr = new HR()
let haier_tv = hr.creatTV()
haier_tv.play()
let haier_Air = hr.creatAir()
haier_Air.change()
